package com.yiruantong.common.mybatis.core.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * Entity基类
 *
 * @author YiRuanTong
 */

@Data
public class BaseEntity implements Serializable {

  @Serial
  private static final long serialVersionUID = 1L;

  /**
   * 搜索值
   */
  @JsonIgnore
  @TableField(exist = false)
  private String searchValue;

  /**
   * 创建人ID
   */
  @TableField(fill = FieldFill.INSERT)
  private Long createBy;

  /**
   * 创建人
   */
  @TableField(fill = FieldFill.INSERT)
  private String createByName;

  /**
   * 创建时间
   */
  @TableField(fill = FieldFill.INSERT)
  private Date createTime;

  /**
   * 更新人ID
   */
  @TableField(fill = FieldFill.INSERT_UPDATE)
  private Long updateBy;

  /**
   * 更新人
   */
  @TableField(fill = FieldFill.INSERT_UPDATE)
  private String updateByName;

  /**
   * 更新时间
   */
  @TableField(fill = FieldFill.INSERT_UPDATE)
  private Date updateTime;

  /**
   * 请求参数
   */
  @JsonInclude(JsonInclude.Include.NON_EMPTY)
  @TableField(exist = false)
  private Map<String, Object> params = new HashMap<>();

}
